package com.ejuornal.service;


import java.util.List;

import javax.servlet.http.HttpSession;

import com.ejuornal.bean.Page;
import com.ejuornal.bean.User;
import com.ejuornal.bean.UserExt;


/**
 * 项目名称：ejuornal    
 * 类名称：UserService    
 * 类描述：用户管理业务逻辑层接口类    
 * 创建人：陈晨    
 * 创建时间：Jan 23, 2013 5:35:18 PM    
 * 修改人：陈晨    
 * 修改时间：Jan 23, 2013 5:35:18 PM    
 * 修改备注：    
 * @version     
 *
 */
public interface UserService {
	/**
	 * 判断用户名是否存在
	 * @param userName
	 * @return 存在返回true
	 */
    public boolean isExists(String userName);
    
    /**
     * Description 根据用户输入email判断邮箱是否已使用过
     * author lwf
     * @param email
     * @return
     */
    public boolean isExitsByEmail(String email);

    /**
     * 用户注册
     * @param user
     */
    public void add(User user);
    
    /**
     * 根据旧密码重置新密码
     * @param user
     * @param newPwd 新密码
     */
    public void resetPwd(User user, String newPwd);
    /*
     * 修改用户密码
     */
    public void updatePwd(User user);
    /*
     * 修改会员角色
     */
    public void updateRole(User user);
    
    /**
     * 用户登录验证
     * @param user
     * @return 返回User对象
     */
  
    public User validate(String email);
    
    /**
     * 根据用户ID批量删除
     * @param userId
     */
    public void delete(int... userId);
    
    /*
     * 
     */
    public User findByEmail(String email);
    /**
	 * 根据用户ID查询
	 * @param userId
	 * @return 返回User对象
	 */
	public User findById(int userId);

	/**
     * 根据用户角色查询
     * @param current_record 当前记录数
     * @param url 地址
     * @param roleId 角色ID
     * @return 返回Page<User>对象
     */
    public Page<User> findByRoleId(int current_record, String url, int roleId);
    
    /**
     * 查询所有数据
     * @param current_record
     * @param url
     * @return 返回Page<User>对象
     */
    public Page<User> findAll(int current_record, String url);
    /**
     * 查找一个user
     * @param current_record
     * @param url
     * @return
     */
    public Page<User> findByEmail(int current_record, String url,String  email);
    public User findByUserName(String userName);
    public boolean update(User user);
    
    /**
     * 根据用户id修改用户角色
     * 作者：lwf
     * @param user
     */
    public void updateRoleIdOnly(User user);
    /**
     * 根据主编的 UserId  查找编辑的信息列表
     * @author lyy
     * @param ChiefUserId
     * @return
     */
    public List<User>   getListUsersEdit(int ChiefUserId);
    /**
     * 根据主编的 UserId  查找编委的信息列表
     * @author lyy
     * @param ChiefUserId
     * @return
     */
    public List<User>   getListUsersCommit(int ChiefUserId);
    
    public  User  getUserByEmail(String email);
    /**
     * 根据文章的id查文章作者
     * @author lyy
     * @param articalId
     * @return
     */
    public User getUser(int articalId);
}
